Vyrų ir moterų pajamų skirtumai Lietuvoje¶

Darbą atliko: Greta Vasiliauskė, 2024 07 22

Hipotezės¶

H1: Vyrų pajamos Lietuvoje yra didesnės nei moterų.

H2: Moterų pajamoms įtaką daro vaikų auginimas.

H3: Mieste gyvenančių Lietuvos piliečių pajamos yra aukštesnės lyginant su kaimo vietovių gyventojais.

Darbo tikslas¶

Išanalizuoti ir nustatyti vyrų ir moterų pajamų skirtumą Lietuvoje, išskiriant samdomo darbo pajamas ir gaunamas pašalpas.

Duomenys¶

In [1]:
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
import numpy as np
import sqlalchemy
import mysql.connector
In [6]:
from IPython.display import Image, display
image_path = "python_paveikslelis.jpg"
display(Image(filename=image_path))
No description has been provided for this image
In [2]:
pip install mysql-connector-python
Requirement already satisfied: mysql-connector-python in c:\users\kazgr\anaconda3\lib\site-packages (9.0.0)
Note: you may need to restart the kernel to use updated packages.
In [3]:
mydb = mysql.connector.connect(
    host="localhost",
    user='root',
    password='****'
)
In [4]:
cursor = mydb.cursor()
cursor.execute('USE projektas')
cursor.execute('SELECT * FROM gyventoju_uzimtumas')
In [5]:
result = cursor.fetchall()
In [6]:
columns = [desc[0] for desc in cursor.description]
In [82]:
df2 = pd.DataFrame(result, columns=columns)
In [8]:
cursor.close()
mydb.close()
In [84]:
print(df2.head())
                                    _id    lytis   amzius   seimine_padetis  \
0  29d3fba0-9bda-446b-afed-8aa0cf9b6a21  Moteris  65 - 69  Vedes/istekejusi   
1  0928b3f8-b743-405a-89c9-336f38af66fc  Moteris  65 - 69  Vedes/istekejusi   
2  2f21bc92-2ead-420d-a2f1-15bf1ddb5976  Moteris  65 - 69  Vedes/istekejusi   
3  c96075e3-dc27-40ca-abf8-6b1dc31e2b37  Moteris  65 - 69  Vedes/istekejusi   
4  54d75dcd-6336-49d6-a66f-2d820d8d8194  Moteris  65 - 69  Vedes/istekejusi   

  pilietybe gimimo_salis ekonominio_aktyvumo_statusas_tiriamaja_savaite  \
0        LT           LT                                      Neaktyvus   
1        LT           LT                                      Neaktyvus   
2        LT           LT                                      Neaktyvus   
3        LT           LT                                      Neaktyvus   
4        LT           LT                                      Neaktyvus   

  uzimtumo_statusas  profesija   auksciausias_sekmingai_igytas_issilavinimas  \
0         Netaikoma  Netaikoma  Vidutinis (ISCED Auksciausias (ISCED 5,6),4)   
1         Netaikoma  Netaikoma  Vidutinis (ISCED Auksciausias (ISCED 5,6),4)   
2         Netaikoma  Netaikoma  Vidutinis (ISCED Auksciausias (ISCED 5,6),4)   
3         Netaikoma  Netaikoma  Vidutinis (ISCED Auksciausias (ISCED 5,6),4)   
4         Netaikoma  Netaikoma  Vidutinis (ISCED Auksciausias (ISCED 5,6),4)   

  auksciausio_igyto_issilavinimo_mokymo/studiju_programa  Data  
0                                         Netaikoma9      2018  
1                                         Netaikoma9      2018  
2                                         Netaikoma9      2018  
3                                         Netaikoma9      2018  
4                                         Netaikoma9      2018  
In [10]:
Asmens_pajamos = pd.read_csv('Asmens_pajamos.csv')
Pašalpos = pd.read_csv('Gyventoju_pasalpos.csv', encoding='ISO-8859-1', sep=',')

Duomenų analizė¶

Kas uždirba daugiau?¶

In [11]:
Asmens_pajamos
Out[11]:
id asmens_id amžius lytis santuokinė_padėtis sąjunga_asmenų_susitarimu aukščiausio_išsilavinimo_įgijimo_metai aukščiausias_įgytas_išsilavinimas_(ISCED lygis) dabartinio_ar_paskutinio_pagrindinio_darbo_sutarties_tipas metinės_samdomojo_darbo_pajamos ... metinė_piniginė_nauda_gauta_naudojantis_darbdavio_automobiliu_asmeniniams_tikslams metinės_savarankiško_darbo_pajamos metinės_savarankiško_darbo_pajamos,_atskaičius_mokesčius metinės_socialinės_išmokos_bedarbiams metinės_socialinės_išmokos_bedarbiams_atskaičius_mokesčius apskritys sluoksniai Miestas ar kaimas asmens_amžius_kai jis_pradėjo_dirbti_nuolatinį_darbą metai
0 234e17ad-4c3e-42db-9011-0ccfca10627b 1000040001 19 Vyras Nevedęs/ netekėjusi Ne Microsoft.OleDb.Date Profesinio mokymo programos kartu su vidurini... Nuolatinis darbas/neterminuota darbo sutartis 6367.75 ... 0.0 0.00 0.00 0.0 0.0 Vilniaus apskritis Vilnius Miestas 18.0 Microsoft.OleDb.Date
1 c59f760b-ef73-4ca0-b3b4-7359798d8b80 1000040002 46 Moteris Vedęs/ ištekėjusi Taip, teisiniu pagrindu Microsoft.OleDb.Date Vidurinis ugdymas Nuolatinis darbas/neterminuota darbo sutartis 8138.60 ... 0.0 0.00 0.00 0.0 0.0 Vilniaus apskritis Vilnius Miestas 19.0 Microsoft.OleDb.Date
2 3c6c9079-81ca-4b9d-a6cc-93c5ec235cd9 1000040003 44 Vyras Vedęs/ ištekėjusi Taip, teisiniu pagrindu Microsoft.OleDb.Date Profesinio mokymo programos turint vidurinį i... Nuolatinis darbas/neterminuota darbo sutartis 8905.36 ... 0.0 0.00 0.00 0.0 0.0 Vilniaus apskritis Vilnius Miestas 20.0 Microsoft.OleDb.Date
3 2e8d97e7-df6f-4bcd-900b-30ff9c52636c 1000040004 25 Vyras Nevedęs/ netekėjusi Ne Microsoft.OleDb.Date Vidurinio ugdymo programos Nuolatinis darbas/neterminuota darbo sutartis 15764.32 ... 0.0 0.00 0.00 0.0 0.0 Vilniaus apskritis Vilnius Miestas 19.0 Microsoft.OleDb.Date
4 455e3699-d32c-4426-936a-15ad2e610d1e 1000050001 47 Moteris Nevedęs/ netekėjusi Ne Microsoft.OleDb.Date Bakalauro studijos Nuolatinis darbas/neterminuota darbo sutartis 13920.03 ... 0.0 0.00 0.00 0.0 0.0 Vilniaus apskritis Vilnius Miestas 22.0 Microsoft.OleDb.Date
... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
117620 377f6ecb-c61a-4d40-b434-28ee522c3b80 40590301 78 Vyras Išsituokęs (-usi) Ne Microsoft.OleDb.Date 5 Nuolatinis darbas/neterminuota darbo sutartis 0.00 ... 0.0 1115.68 1115.68 0.0 0.0 Utenos apskritis Kaimai Kaimas NaN Microsoft.OleDb.Date
117621 b9c13568-4ff3-40fe-9b5f-f89519fa357d 40590401 79 Vyras Vedęs/ ištekėjusi Taip, teisiniu pagrindu NaN Ikimokyklinis ugdymas Nuolatinis darbas/neterminuota darbo sutartis 0.00 ... 0.0 0.00 0.00 0.0 0.0 Telšių apskritis Kaimai Kaimas NaN Microsoft.OleDb.Date
117622 0b49dff9-24f7-40b6-bf17-25d53d41f8d4 40590402 77 Moteris Vedęs/ ištekėjusi Taip, teisiniu pagrindu NaN Ikimokyklinis ugdymas Nuolatinis darbas/neterminuota darbo sutartis 0.00 ... 0.0 0.00 0.00 0.0 0.0 Telšių apskritis Kaimai Kaimas NaN Microsoft.OleDb.Date
117623 0070cf9f-aff0-4c5e-9c88-111d9ed0ec7c 40590501 82 Vyras Vedęs/ ištekėjusi Taip, be teisinio pagrindo Microsoft.OleDb.Date 1 Nuolatinis darbas/neterminuota darbo sutartis 0.00 ... 0.0 0.00 0.00 0.0 0.0 Panevėžio apskritis Kaimai Kaimas NaN Microsoft.OleDb.Date
117624 fc44af03-978c-4e8d-8b28-42cdc1f43d9e 40590502 83 Moteris Vedęs/ ištekėjusi Taip, be teisinio pagrindo Microsoft.OleDb.Date 1 Nuolatinis darbas/neterminuota darbo sutartis 0.00 ... 0.0 0.00 0.00 0.0 0.0 Panevėžio apskritis Kaimai Kaimas NaN Microsoft.OleDb.Date

117625 rows × 22 columns

In [ ]:
# Duomenų tipai ir tikrinimas
In [12]:
Asmens_pajamos['metinės_samdomojo_darbo_pajamos'] = pd.to_numeric(Asmens_pajamos['metinės_samdomojo_darbo_pajamos'], errors='coerce')
Asmens_pajamos['metinės_socialinės_išmokos_bedarbiams'] = pd.to_numeric(Asmens_pajamos['metinės_socialinės_išmokos_bedarbiams'], errors='coerce')
In [ ]:
# Vidutinės metinės samdomo darbo pajamas pagal lytį:
In [13]:
pajamos_lytis = Asmens_pajamos.groupby('lytis')['metinės_samdomojo_darbo_pajamos'].mean()
In [ ]:
# Kas uždirba daugiau: vyrai ar moterys? Kiek vidutiniškai uždirba?
In [14]:
print("Vidutinės metinės samdomo darbo pajamos pagal lytį:")
print(pajamos_lytis)
Vidutinės metinės samdomo darbo pajamos pagal lytį:
lytis
Moteris    6410.711138
Vyras      8167.276526
Name: metinės_samdomojo_darbo_pajamos, dtype: float64
In [15]:
lytis_daugiau_uzdirba = pajamos_lytis.idxmax()
daugiau_uzdirba_suma = pajamos_lytis.max()
In [16]:
print(f"\nDaugiau uždirba: {lytis_daugiau_uzdirba}, Uždirba: {daugiau_uzdirba_suma:.2f}")
Daugiau uždirba: Vyras, Uždirba: 8167.28
In [ ]:
# Grafikas
In [17]:
plt.figure(figsize=(10, 5))
sns.barplot(x=pajamos_lytis.index, y=pajamos_lytis.values)
plt.title('Vidutinės metinės pajamos pagal lytį')
plt.ylabel('Vidutinės pajamos')
plt.xlabel('Lytis')
plt.show()
No description has been provided for this image
In [ ]:
# Vidutinės pajamos mieste ir kaime
In [18]:
pajamos_miestas_kaimas = Asmens_pajamos.groupby('Miestas ar kaimas')['metinės_samdomojo_darbo_pajamos'].mean()
In [19]:
print("\nVidutinės metinės samdomo darbo pajamos mieste ir kaime:")
print(pajamos_miestas_kaimas)
Vidutinės metinės samdomo darbo pajamos mieste ir kaime:
Miestas ar kaimas
Kaimas     4840.659146
Miestas    8437.091754
Name: metinės_samdomojo_darbo_pajamos, dtype: float64
In [ ]:
# Vidutinės pajamos pagal apskritį ir lytį
In [20]:
Asmens_pajamos['metinės_samdomojo_darbo_pajamos'] = pd.to_numeric(Asmens_pajamos['metinės_samdomojo_darbo_pajamos'], errors='coerce')
In [21]:
print(Asmens_pajamos['metinės_samdomojo_darbo_pajamos'].isna().sum())
13862
In [22]:
Asmens_pajamos = Asmens_pajamos.dropna(subset=['metinės_samdomojo_darbo_pajamos'])
In [ ]:
# Pajamų suma apskrityse
In [23]:
pajamų_suma_apskrityse = {}
for index, row in Asmens_pajamos.iterrows():
    apskritis = row['apskritys']
    suma = row['metinės_samdomojo_darbo_pajamos']
    if apskritis in pajamų_suma_apskrityse:
        pajamų_suma_apskrityse[apskritis] += suma
    else:
        pajamų_suma_apskrityse[apskritis] = suma
In [24]:
pajamų_suma_apskrityse
Out[24]:
{'Vilniaus apskritis': 226580896.61000064,
 'Kauno apskritis': 164834795.87000096,
 'Marijampolės apskritis': 29681769.020000037,
 'Klaipėdos apskritis': 87666180.59999992,
 'Šiaulių apskritis': 67178961.16999985,
 'Panevėžio apskritis': 55709504.66999996,
 'Tauragės apskritis': 19270088.960000005,
 'Telšių apskritis': 28601542.029999986,
 'Utenos apskritis': 36948514.67999999,
 'Alytaus apskritis': 30790857.710000012}
In [25]:
pajamos_apskritys_lytis = Asmens_pajamos.groupby(['apskritys', 'lytis'])['metinės_samdomojo_darbo_pajamos'].mean().reset_index()
In [26]:
pajamos_apskritys_lytis
Out[26]:
apskritys lytis metinės_samdomojo_darbo_pajamos
0 Alytaus apskritis Moteris 5216.929701
1 Alytaus apskritis Vyras 6677.456584
2 Kauno apskritis Moteris 6900.510649
3 Kauno apskritis Vyras 8905.380399
4 Klaipėdos apskritis Moteris 6229.987657
5 Klaipėdos apskritis Vyras 9289.479223
6 Marijampolės apskritis Moteris 4863.249847
7 Marijampolės apskritis Vyras 5953.691692
8 Panevėžio apskritis Moteris 5722.959421
9 Panevėžio apskritis Vyras 6675.936841
10 Tauragės apskritis Moteris 4342.728168
11 Tauragės apskritis Vyras 5239.837542
12 Telšių apskritis Moteris 4975.918287
13 Telšių apskritis Vyras 6372.349108
14 Utenos apskritis Moteris 5627.151655
15 Utenos apskritis Vyras 7081.998820
16 Vilniaus apskritis Moteris 7945.934017
17 Vilniaus apskritis Vyras 9801.707128
18 Šiaulių apskritis Moteris 5638.216146
19 Šiaulių apskritis Vyras 7431.896681
In [ ]:
# Vidutinės socialinės išmokos bedarbiams pagal apskritis ir lytį
In [27]:
ismokos_lytis = Asmens_pajamos.groupby(['lytis'])['metinės_socialinės_išmokos_bedarbiams'].mean().reset_index()
In [28]:
ismokos_lytis
Out[28]:
lytis metinės_socialinės_išmokos_bedarbiams
0 Moteris 75.081575
1 Vyras 93.418497
In [ ]:
# Vidutinės pajamos pagal santuokinę padėtį
In [29]:
pajamos_santuokine_padetis_lytis = Asmens_pajamos.groupby(['santuokinė_padėtis', 'lytis'])['metinės_samdomojo_darbo_pajamos'].mean().reset_index()
In [30]:
print("\nVidutinės metinės samdomo darbo pajamos pagal santuokinę padėtį ir lytį:")
pajamos_santuokine_padetis_lytis
Vidutinės metinės samdomo darbo pajamos pagal santuokinę padėtį ir lytį:
Out[30]:
santuokinė_padėtis lytis metinės_samdomojo_darbo_pajamos
0 Išsituokęs (-usi) Moteris 7826.211619
1 Išsituokęs (-usi) Vyras 6165.008271
2 Našlys (-ė) Moteris 1751.376825
3 Našlys (-ė) Vyras 1710.310387
4 Nevedęs/ netekėjusi Moteris 4880.879661
5 Nevedęs/ netekėjusi Vyras 4892.161218
6 Sutuoktinis (-ė) gyvena atskirai Moteris 7621.372027
7 Sutuoktinis (-ė) gyvena atskirai Vyras 8253.500838
8 Vedęs/ ištekėjusi Moteris 8119.348226
9 Vedęs/ ištekėjusi Vyras 9999.730794
In [ ]:
# Maksimalios pajamos pagal lytį
In [31]:
lytis = Asmens_pajamos['lytis'].values
pajamos = Asmens_pajamos['metinės_samdomojo_darbo_pajamos'].values
In [32]:
unikalios_lytys = np.unique(lytis)
In [33]:
maksimalios_pajamos_pagal_lyti = {}

for lytis_reiksme in unikalios_lytys:
    pajamos_lytyje = pajamos[lytis == lytis_reiksme]
    maks = np.max(pajamos_lytyje)
    maksimalios_pajamos_pagal_lyti[lytis_reiksme] = maks
In [34]:
maksimalios_pajamos_df = pd.DataFrame(list(maksimalios_pajamos_pagal_lyti.items()), columns=['Lytis', 'Maksimalios Pajamos'])
In [35]:
maksimalios_pajamos_df
Out[35]:
Lytis Maksimalios Pajamos
0 Moteris 253868.60
1 Vyras 213446.79

Kokias pašalpas gauna Lietuvos piliečiai?¶

In [36]:
Pašalpos.head()
Out[36]:
pasalpos_rusis pasalpos_porusis lytis amzius atveju_skaicius gaveju_skaicius apmokamu_dienu_skaicius pasalpu_skaicius priskirta_suma_eur data amzius_nuo
0 Ligos ismoka Nelaimingi atsitikimai buityje Vyras 20-25 m. 1 0 3 0 15.39 2009 20.0
1 Ligos ismoka Nelaimingi atsitikimai buityje Moteris 30-35 m. 1 0 3 0 15.39 2012 30.0
2 Ligos ismoka Nelaimingi atsitikimai buityje Vyras 15-20 m. 1 0 3 0 15.39 2012 15.0
3 Ligos ismoka Nelaimingi atsitikimai buityje Vyras 70-75 m. 1 0 3 0 15.39 2012 70.0
4 Ligos ismoka Nelaimingi atsitikimai buityje Vyras 65-70 m. 1 0 3 0 15.39 2012 65.0
In [ ]:
# Skaičių formatas
In [37]:
pd.options.display.float_format = '{:,.2f}'.format
In [ ]:
# Pašalpos - pagrindinė informacija
In [38]:
lentelė = Pašalpos[['lytis', 'amzius', 'pasalpos_rusis', 'pasalpos_porusis']]
In [39]:
lentelė.head()
Out[39]:
lytis amzius pasalpos_rusis pasalpos_porusis
0 Vyras 20-25 m. Ligos ismoka Nelaimingi atsitikimai buityje
1 Moteris 30-35 m. Ligos ismoka Nelaimingi atsitikimai buityje
2 Vyras 15-20 m. Ligos ismoka Nelaimingi atsitikimai buityje
3 Vyras 70-75 m. Ligos ismoka Nelaimingi atsitikimai buityje
4 Vyras 65-70 m. Ligos ismoka Nelaimingi atsitikimai buityje
In [ ]:
# Priskirta pašalpos suma pagal lytį:
In [40]:
pašalpos_lytis = Pašalpos.groupby('lytis')['priskirta_suma_eur'].sum().reset_index()
In [41]:
print("Priskirta pašalpos suma pagal lytį:")
print(pašalpos_lytis)
Priskirta pašalpos suma pagal lytį:
     lytis  priskirta_suma_eur
0  Moteris    5,734,241,445.78
1    Vyras    2,699,419,465.39
In [44]:
daugiau_pašalpų_lytis = pašalpos_lytis.loc[pašalpos_lytis['priskirta_suma_eur'].idxmax(), 'lytis']
daugiau_pašalpų_suma = pašalpos_lytis['priskirta_suma_eur'].max()
In [45]:
print(f"\nDaugiau pašalpų gauna lytis: {daugiau_pašalpų_lytis} su suma: {daugiau_pašalpų_suma:,.2f} EUR")
Daugiau pašalpų gauna lytis: Moteris su suma: 5,734,241,445.78 EUR
In [ ]:
# Priskirta pašalpos suma pagal pašalpos rūšį ir lytį:
In [46]:
pašalpos_lytis_rūšis = Pašalpos.groupby(['pasalpos_rusis', 'lytis'])['priskirta_suma_eur'].sum().reset_index()
In [47]:
pašalpos_lytis_rūšis
Out[47]:
pasalpos_rusis lytis priskirta_suma_eur
0 Ligos ismoka Moteris 1,904,762,118.46
1 Ligos ismoka Vyras 1,825,745,029.75
2 Motinystes ismoka Moteris 1,001,616,593.03
3 Motinystes ismoka Vyras 12,427.90
4 Profesines reabilitacijos ismoka Moteris 16,001.71
5 Profesines reabilitacijos ismoka Vyras 14,904.62
6 Tëvystes ismoka Vyras 190,078,096.19
7 Vaiko prieziuros ismoka Moteris 2,827,846,732.58
8 Vaiko prieziuros ismoka Vyras 683,569,006.93
In [48]:
dažniausia_pašalpos_rūšis_moterims = pašalpos_lytis_rūšis[pašalpos_lytis_rūšis['lytis'] == 'Moteris']
In [49]:
dažniausia_pašalpos_rūšis_moterims = dažniausia_pašalpos_rūšis_moterims.loc[dažniausia_pašalpos_rūšis_moterims['priskirta_suma_eur'].idxmax()]
In [50]:
dažniausia_pašalpos_rūšis_vyrams = pašalpos_lytis_rūšis[pašalpos_lytis_rūšis['lytis'] == 'Vyras']
In [51]:
dažniausia_pašalpos_rūšis_vyrams = dažniausia_pašalpos_rūšis_vyrams.loc[dažniausia_pašalpos_rūšis_vyrams['priskirta_suma_eur'].idxmax()]
In [52]:
print(f"Dažniausia pašalpos rūšis tarp moterų: {dažniausia_pašalpos_rūšis_moterims['pasalpos_rusis']} su suma: {dažniausia_pašalpos_rūšis_moterims['priskirta_suma_eur']:,.2f} EUR")
Dažniausia pašalpos rūšis tarp moterų: Vaiko prieziuros ismoka su suma: 2,827,846,732.58 EUR
In [53]:
print(f"Dažniausia pašalpos rūšis tarp vyrų: {dažniausia_pašalpos_rūšis_vyrams['pasalpos_rusis']} su suma: {dažniausia_pašalpos_rūšis_vyrams['priskirta_suma_eur']:,.2f} EUR")
Dažniausia pašalpos rūšis tarp vyrų: Ligos ismoka su suma: 1,825,745,029.75 EUR
In [ ]:
# Vidutinės pašalpos suma pagal lytį
In [55]:
pašalpos_lytis = Pašalpos.groupby('lytis')['priskirta_suma_eur'].sum()
In [56]:
plt.figure(figsize=(10, 5))
sns.barplot(x=pašalpos_lytis.index, y=pašalpos_lytis.values)
plt.title('Priskirta pašalpos suma pagal lytį')
plt.ylabel('Pasalpos suma')
plt.xlabel('lytis')
plt.show()
No description has been provided for this image
In [ ]:
# Analizė, skirta išsiaiškinti, ar žmogus gauna aukštas, ar žemas pajamas, remiantis jų amžiumi ir metinėmis samdomo darbo pajamomis.
In [57]:
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
from sklearn.linear_model import LogisticRegression
from sklearn.metrics import classification_report, confusion_matrix
In [58]:
data = {
    'amžius': np.random.randint(18, 70, size=1000),
    'metinės_samdomojo_darbo_pajamos': np.random.uniform(5000, 60000, size=1000)
}
df = pd.DataFrame(data)
In [59]:
df['pajamų_klasė'] = df['metinės_samdomojo_darbo_pajamos'].apply(lambda x: 1 if x > 25000 else 0)
In [60]:
X = df[['amžius', 'metinės_samdomojo_darbo_pajamos']]
y = df['pajamų_klasė']
In [61]:
scaler = StandardScaler()
X_scaled = scaler.fit_transform(X)
In [62]:
X_train, X_test, y_train, y_test = train_test_split(X_scaled, y, test_size=0.3, random_state=42)
In [63]:
model = LogisticRegression()
model.fit(X_train, y_train)
Out[63]:
LogisticRegression()
In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook.
On GitHub, the HTML representation is unable to render, please try loading this page with nbviewer.org.
LogisticRegression()
In [64]:
y_pred = model.predict(X_test)
In [65]:
print("Confusion Matrix:")
print(confusion_matrix(y_test, y_pred))
Confusion Matrix:
[[112   3]
 [  0 185]]
In [66]:
print("\nClassification Report:")
print(classification_report(y_test, y_pred))
Classification Report:
              precision    recall  f1-score   support

           0       1.00      0.97      0.99       115
           1       0.98      1.00      0.99       185

    accuracy                           0.99       300
   macro avg       0.99      0.99      0.99       300
weighted avg       0.99      0.99      0.99       300

In [67]:
xx, yy = np.meshgrid(np.linspace(X_scaled[:, 0].min() - 1, X_scaled[:, 0].max() + 1, 500),
                     np.linspace(X_scaled[:, 1].min() - 1, X_scaled[:, 1].max() + 1, 500))
In [68]:
Z = model.predict(np.c_[xx.ravel(), yy.ravel()])
Z = Z.reshape(xx.shape)
In [69]:
plt.figure(figsize=(10, 6))
plt.contourf(xx, yy, Z, alpha=0.3, cmap=plt.cm.coolwarm)
plt.scatter(X_scaled[:, 0], X_scaled[:, 1], c=y, edgecolor='k', cmap=plt.cm.coolwarm)
plt.xlabel('Amžius (normalizuotas)')
plt.ylabel('Metinės samdomojo darbo pajamos (normalizuotos)')
plt.title('Sprendimo ribos ir duomenų taškai')
plt.show()
No description has been provided for this image

Gyventojų užimtumas¶

In [ ]:
# Užimtumo statusas pagal lytį
In [85]:
grouped = df2.groupby(['lytis', 'uzimtumo_statusas']).size().unstack(fill_value=0)
In [86]:
total_by_gender = grouped.sum(axis=1)
In [87]:
percentage_by_status = (grouped.div(total_by_gender, axis=0) * 100).round(2)
In [88]:
print("Grupavimas pagal lytį ir užimtumo statusą:\n", grouped)
Grupavimas pagal lytį ir užimtumo statusą:
 uzimtumo_statusas  Kitas  Netaikoma  Samdomasis darbuotojas
lytis                                                      
Moteris            15318     169802                  136638
Vyras              19724     138261                  111943
In [89]:
print("\nProcentinė dalis pagal užimtumo statusą:\n", percentage_by_status)
Procentinė dalis pagal užimtumo statusą:
 uzimtumo_statusas  Kitas  Netaikoma  Samdomasis darbuotojas
lytis                                                      
Moteris             4.76      52.77                   42.47
Vyras               7.31      51.22                   41.47
In [ ]:
# Ekonominio aktyvumo statusas pagal lytį
In [91]:
grouped = df2.groupby(['lytis', 'ekonominio_aktyvumo_statusas_tiriamaja_savaite']).size().unstack(fill_value=0)
In [92]:
total_by_gender = grouped.sum(axis=1)
In [93]:
percentage_by_status = (grouped.div(total_by_gender, axis=0) * 100).round(2)
In [94]:
print("Grupavimas pagal lytį ir ekonominio aktyvumo statusą:\n", grouped)
Grupavimas pagal lytį ir ekonominio aktyvumo statusą:
 ekonominio_aktyvumo_statusas_tiriamaja_savaite  Bedarbis  Neaktyvus  \
lytis                                                                 
Moteris                                            13999     117198   
Vyras                                              14865      83070   

ekonominio_aktyvumo_statusas_tiriamaja_savaite  Netaikoma (jaunesniems kaip 15 metu asmenims)  \
lytis                                                                                           
Moteris                                                                                 38605   
Vyras                                                                                   40326   

ekonominio_aktyvumo_statusas_tiriamaja_savaite  Uzimtasis  
lytis                                                      
Moteris                                            151956  
Vyras                                              131667  
In [95]:
print("\nProcentinė dalis pagal ekonominio aktyvumo statusą:\n", percentage_by_status)
Procentinė dalis pagal ekonominio aktyvumo statusą:
 ekonominio_aktyvumo_statusas_tiriamaja_savaite  Bedarbis  Neaktyvus  \
lytis                                                                 
Moteris                                             4.35      36.42   
Vyras                                               5.51      30.77   

ekonominio_aktyvumo_statusas_tiriamaja_savaite  Netaikoma (jaunesniems kaip 15 metu asmenims)  \
lytis                                                                                           
Moteris                                                                                 12.00   
Vyras                                                                                   14.94   

ekonominio_aktyvumo_statusas_tiriamaja_savaite  Uzimtasis  
lytis                                                      
Moteris                                             47.23  
Vyras                                               48.78  
In [ ]:
# Įgytas išsilavinimas
In [96]:
columns = [desc[0] for desc in cursor.description]
In [97]:
df = pd.DataFrame(result, columns=columns)
In [98]:
cursor.close()
mydb.close()
In [99]:
grouped = df.groupby(['lytis', 'auksciausias_sekmingai_igytas_issilavinimas']).size().unstack(fill_value=0)
In [100]:
total_by_gender = grouped.sum(axis=1)
In [101]:
percentage_by_education = (grouped.div(total_by_gender, axis=0) * 100).round(2)
In [102]:
print("Įgytas išsilavinimas:\n", grouped)
Įgytas išsilavinimas:
 auksciausias_sekmingai_igytas_issilavinimas  Auksciausias (ISCED 5,6)  \
lytis                                                                   
Moteris                                                         92210   
Vyras                                                           52515   

auksciausias_sekmingai_igytas_issilavinimas  Netaikoma  \
lytis                                                    
Moteris                                          38605   
Vyras                                            40326   

auksciausias_sekmingai_igytas_issilavinimas  Vidutinis (ISCED Auksciausias (ISCED 5,6),4)  \
lytis                                                                                       
Moteris                                                                            142622   
Vyras                                                                              135477   

auksciausias_sekmingai_igytas_issilavinimas  zemesnis (ISCED 0,Vidutinis (ISCED Auksciausias (ISCED 5,6),4))  
lytis                                                                                                         
Moteris                                                                                  48321                
Vyras                                                                                    41610                
In [103]:
print("\nProcentinė dalis pagal įgytą išsilavinimą:\n", percentage_by_education)
Procentinė dalis pagal įgytą išsilavinimą:
 auksciausias_sekmingai_igytas_issilavinimas  Auksciausias (ISCED 5,6)  \
lytis                                                                   
Moteris                                                         28.66   
Vyras                                                           19.46   

auksciausias_sekmingai_igytas_issilavinimas  Netaikoma  \
lytis                                                    
Moteris                                          12.00   
Vyras                                            14.94   

auksciausias_sekmingai_igytas_issilavinimas  Vidutinis (ISCED Auksciausias (ISCED 5,6),4)  \
lytis                                                                                       
Moteris                                                                             44.33   
Vyras                                                                               50.19   

auksciausias_sekmingai_igytas_issilavinimas  zemesnis (ISCED 0,Vidutinis (ISCED Auksciausias (ISCED 5,6),4))  
lytis                                                                                                         
Moteris                                                                                  15.02                
Vyras                                                                                    15.42                
In [104]:
highest_education = 'Auksciausias (ISCED 5,6)'
In [105]:
highest_education_counts = grouped[highest_education]
In [106]:
most_common_gender = highest_education_counts.idxmax()
In [107]:
print(f'Aukščiausią išsilavinimą dažniau įgyja: {most_common_gender}')
Aukščiausią išsilavinimą dažniau įgyja: Moteris

Išvados¶

  1. Nagrinejant pajamas, gautas iš samdomo darbo, matome, jog vyrų pajamos Lietuvoje yra didesnės nei moterų. Nepaisant to, kad moterys dažniau įgyja aukščiausią išsilavinimą.
  2. Analizuojant pagal santuokinę padėtį, matome, jog nesusituokusių moterų ir vyrų pajamos skiriasi neženkliai, tačiau lyginant vedusius vyrus ir ištekėjusias moteris - gaunamų pajamų skirtumas ženkliai padidėja. Tačiau daugiau pašalpų gauna moterys, dažniausia pašalpos rūšis: vaiko priežiūros išmoka.
  3. Miesto gyventojų pajamos didesnės nei kaimo gyventojų. Vidutinės metinės samdomo darbo pajamos mieste ir kaime:

Kaimas 5425.902538 Miestas 9301.656639